package com.chushouya.order.service.api;


import com.chushouya.order.dto.api.dangdang.DangDangCreateOrderRequest;
import com.chushouya.order.dto.api.dangdang.DangDangCreateOrderResponse;
import com.chushouya.order.dto.api.dangdang.DangDangOrderPushDTO;
import com.chushouya.order.dto.api.dangdang.DangDangResponse;

/**
 * 铛铛API服务接口
 */
public interface DangDangApiService {

    /**
     * 创建订单
     * @param request 创建订单请求
     * @return 创建订单响应
     */
    DangDangResponse<DangDangCreateOrderResponse> createOrder(DangDangCreateOrderRequest request);

    /**
     * 创建订单（测试环境）
     * @param request 创建订单请求
     * @return 创建订单响应
     */
    DangDangResponse<DangDangCreateOrderResponse> createOrderTest(DangDangCreateOrderRequest request);

    /**
     * 创建测试订单
     * @param orderId 订单ID
     * @return 创建订单响应
     */
    DangDangResponse<DangDangCreateOrderResponse> createOrder(Long orderId);

    /**
     * 处理当当订单推送
     * @param orderPushDTO 订单推送数据
     */
    void handleOrderPush(DangDangOrderPushDTO orderPushDTO);

    /**
     * 取消订单
     * @param orderSn 订单号
     * @param closeInfo 取消原因
     * @return 取消订单响应
     */
    DangDangResponse<Void> cancelOrder(String orderSn, String closeInfo);
}
